from django.db import models
from tanxi.models.mysql.mysql_user_model import UserModel  # 假设你有一个用户模型

class TravelBlogModel(models.Model):
    # 旅游博客ID（自动递增主键）
    id = models.AutoField(primary_key=True, verbose_name='旅游博客ID')
    
    # 城市名称
    city = models.CharField(max_length=100, verbose_name='城市')
    
    # 景点/地点标题
    title = models.CharField(max_length=200, verbose_name='标题')
    
    # 详细地址
    address = models.CharField(max_length=255, verbose_name='地址')
    
    # 描述内容
    description = models.TextField(verbose_name='描述')
    
    # 图片URL
    image = models.URLField(max_length=500, verbose_name='图片URL')
    
    # 地图链接
    map_url = models.URLField(max_length=500, verbose_name='地图链接')
    
    # 创建时间
    created_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    
    # 更新时间
    updated_at = models.DateTimeField(auto_now=True, verbose_name='更新时间')
    
    # 作者ID（外键，关联到用户模型）
    author = models.ForeignKey(
        UserModel,
        on_delete=models.CASCADE,
        related_name='travel_blogs',
        verbose_name='作者',
        to_field='user_id'
    )
    
    # 浏览次数
    view_count = models.PositiveIntegerField(default=0, verbose_name='浏览次数')
    
    # 标签（JSON格式存储）
    tags = models.JSONField(default=list, verbose_name='标签')
    
    # 是否发布
    is_published = models.BooleanField(default=False, verbose_name='是否发布')
    
    # 元数据
    class Meta:
        db_table = 'travel_blogs'  # 自定义表名
        verbose_name = '旅游博客'  # 单数形式
        verbose_name_plural = '旅游博客'  # 复数形式
        ordering = ['-created_at']  # 按创建时间倒序排列
    
    def __str__(self):
        return f"{self.city} - {self.title}"